package cn.jhh.content.utils;

import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * 代码生成器配置类
 */
@Data
@Builder
public class GeneratorConfig {
    /**
     * 数据库连接URL
     */
    private String url;
    
    /**
     * 数据库用户名
     */
    private String username;
    
    /**
     * 数据库密码
     */
    private String password;
    
    /**
     * 需要生成的表名列表
     */
    private List<String> tables;
    
    /**
     * 表前缀
     */
    private String tablePrefix;
    
    /**
     * 作者名
     */
    private String author;
    
    /**
     * 包名
     */
    private String packageName;
    
    /**
     * 输出路径
     */
    private String outputDir;
    
    /**
     * Mapper.xml输出路径
     */
    private String mapperXmlPath;
    
    /**
     * 是否覆盖已有文件
     */
    private boolean fileOverride;
    
    /**
     * 是否开启Swagger注解
     */
    private boolean enableSwagger;
    
    /**
     * 逻辑删除字段
     */
    private String logicDeleteField;
    
    /**
     * 创建生成器配置的实例
     * @return 默认配置
     */
    public static GeneratorConfig createConfig() {
        return GeneratorConfig.builder()
                .url("jdbc:mysql://107.172.204.92:3306/content_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai")
                .username("root")
                .password("rootpassword")
                .packageName("cn.jhh.content")
                .author("jhh")
                .tablePrefix("t_")
                .outputDir(System.getProperty("user.dir") + "/course-plus-content/src/main/java")
                .mapperXmlPath(System.getProperty("user.dir") + "/course-plus-content/src/main/resources/mapper")
                .fileOverride(true)
                .enableSwagger(true)
                .logicDeleteField("is_deleted")
                .build();
    }
} 